import logging

from redis import StrictRedis


class Config(object):
    """创建配置"""

    # 配置秘钥随机生成48位数字并用base64加密
    SECRET_KEY = 'YCoe5t49KKw5sO8XswrVgXTU6ldH6eAjHhyO1uhP4z9x00yoGl7qDeTwpzObV7O7'
    # 配置mysql数据库
    SQLALCHEMY_DATABASE_URI = "mysql+mysqlconnector://root:mysql@127.0.0.1/information"
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    # 在视图函数结束时 自动执行commit
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True
    # Redis配置
    REDIS_HOST = '127.0.0.1'
    REDIS_PORT = 6379
    # 配置session相关信息
    # 将session数据储存在Redis中
    SESSION_TYPE = 'redis'
    # 连接Redis数据库
    SESSION_REDIS = StrictRedis(host=REDIS_HOST, port=REDIS_PORT)
    # 配置签名信息 进行严格的加密
    SESSION_USE_SIGNER = True
    # 进行过期时间设置
    SESSION_PERMANENT = False
    PERMANENT_SESSION_LIFETIME = 60 * 60 * 24 * 2

    # 默认日志等级
    LOG_LEVEL = logging.DEBUG


# 创建不同环境关系下的调试模式
class DevelopementConfig(Config):
    """开发模式下的配置"""
    DEBUG = True


class ProductionConfig(Config):
    """生产模式下的配置"""
    DEBUG = False
    LOG_LEVEL = logging.ERROR


# 将不同的配置环境配置在字典中，传入info__init__ 并在内创建工厂函数
# 使不同的环境配置不同的信息
config = {
    "development": DevelopementConfig,
    "production": ProductionConfig
}
